﻿using System.Windows.Forms;
using accesoDatos;

namespace clasesBase
{
    public static class Notificador
    {
        #region Confirmar acciones
        public static bool accionGuardarConfirmada()
        {
            string titulo = "Guardar elemento", mensaje = "¿Seguro que desea guardar esta información?";
            DialogResult respuesta = MessageBox.Show(mensaje, titulo, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            return (respuesta == DialogResult.Yes);
        }

        public static bool accionBorrarConfirmada()
        {
            string titulo = "Borrar elemento", mensaje = "¿Seguro que desea borrar el elemento seleccionado?";
            DialogResult respuesta = MessageBox.Show(mensaje, titulo, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            return (respuesta == DialogResult.Yes);
        }

        public static bool accionCerrarConfirmada()
        {
            string titulo = "Cerrar el sistema", mensaje = "¿Está seguro que desea salir?";
            DialogResult respuesta = MessageBox.Show(mensaje, titulo, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            return (respuesta == DialogResult.Yes);
        }
        #endregion

        #region Resultados de operaciones
        public static void resultadoABM(char tipoOperacion, string error)
        {
            string titulo = "", mensaje = "La operación fue realizada con éxito";
            MessageBoxIcon icono = MessageBoxIcon.Information;

            switch (tipoOperacion)
            { 
                case TipoOperacionABM.ALTA:
                    titulo = "Nuevo";
                    break;

                case TipoOperacionABM.MODIFICACION:
                    titulo = "Editar";
                    break;

                case TipoOperacionABM.BAJA:
                    titulo = "Borrar";
                    break;
            }

            if (error.Trim() != "")
            {
                mensaje = "Ocurrió un error: " + error;
                icono = MessageBoxIcon.Error;
            }

            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, icono);
        }

        public static void errorExcepción(string error)
        {
            string titulo = "Excepción";
            MessageBox.Show(error, titulo, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        #endregion

        #region Filtros
        public static void errorAlFiltrar(string error)
        {
            string titulo = "Filtrar";
            MessageBox.Show(error, titulo, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        #endregion

        #region Validaciones
        public static void camposNoCompletos()
        {
            string titulo = "Campos obligatorios", mensaje = "Debe completar todos los campos obligatorios antes de continuar.";
            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void elementoNoSeleccionado()
        {
            string titulo = "¡Atención!", mensaje = "Debe seleccionar un elemento antes de continuar";
            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        public static void formulariosAbiertos()
        {
            string titulo = "¡Atención!", mensaje = "Existen formularios abiertos aún, debe cerrarlos para continuar.";
            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        public static void grillaVacia()
        {
            string titulo = "Grilla vacía", mensaje = "No existen elementos en la grilla.";
            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        public static void logueo_incorrecto()
        {
            string titulo = "Acceso al sistema", mensaje = "Los datos de usuario y clave proporcionados no son correctos.";
            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        #endregion

        public static void formulaActualNoExistente()
        {
            string titulo = "¡Atención!", mensaje = "El producto elegido no tiene Fórmula Actual.";
            MessageBox.Show(mensaje, titulo, MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}
